package com.czd.base.utils;


import org.apache.commons.lang3.StringUtils;

import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.File;

/**
 * Created with IntelliJ IDEA.
 * Author: GuSi
 * Create: GuSi (14-5-12 9:55)
 * Description:
 * To change this template use File | Settings | File Templates.
 */
public class WebUtils {
/**
 * 通过名字从 request parameters 中获取值，并返回字符串
 * 默认返回null
 * @param request 客户端请求
 * @param name 参数名称
 * @return String
 */
public static String findParamStr(ServletRequest request, String name, String defaultStr) {
	String str = request.getParameter(name);
	if(StringUtils.isNotBlank(str)){
		return str;
	}
	return defaultStr;
}

/**
 * 通过名字从 request parameters 中获取值，并返回字符串
 * 默认返回null
 * @param request 客户端请求
 * @param name 参数名称
 * @return String 默认 null
 */
public static String findParamStr(ServletRequest request, String name) {
	return findParamStr(request, name, null);
}

/**
 * 通过名字从 request parameters 中获取值，并返回 int
 * 如果值为空，默认返回 自定义的值
 * @param request 客户端请求
 * @param name 参数名称
 * @return int
 */
public static int findParamInt(ServletRequest request, String name, int defaultInt) {
	String str = request.getParameter(name);
	if(StringUtils.isNotBlank(str)){
		try {
			return  Integer.parseInt(str);
		}catch (Exception e){
			return defaultInt;
		}
	}
	return defaultInt;
}

/**
 * 通过名字从 request parameters 中获取值，并返回 double
 * 如果值为空，默认返回 自定义的值
 * @param request 客户端请求
 * @param name 参数名称
 * @return double
 */
public static double findParamDouble(ServletRequest request, String name, int defaultInt) {
	String str = request.getParameter(name);
	if(StringUtils.isNotBlank(str)){
		try {
			return  Double.parseDouble(str);
		}catch (Exception e){
			return defaultInt;
		}
	}
	return defaultInt;
}

/**
 * 换行
 * @param desc
 * @return
 */
public static String addBr(String desc){
	if(StringUtils.isNotBlank(desc)){
		return desc.replaceAll("\r\n", "<br/>").replaceAll("\n\n","<br/>").replaceAll("\r", "<br/>").replaceAll("\n", "<br/>");
	}
	return desc;
}

/**
 * 通过名字从 request parameters 中获取值，并返回 int
 * 如果值为空，默认返回 0
 * @param request
 * @param name
 * @return
 */
public static int findParamInt(ServletRequest request, String name) {
	return findParamInt(request, name, 0);
}

/**
 * 通过名字从 request parameters 中获取值，并返回 int
 * 如果值为空，默认返回 0
 * @param request
 * @param name
 * @return
 */
public static double findParamDouble(ServletRequest request, String name) {
	return findParamDouble(request, name, 0);
}

/**
 * 通过名字从 request parameters 中获取值，并返回 boolean
 * 值为true 和 false
 * @param request
 * @param name
 * @return
 */
public static boolean findParamBoolean(ServletRequest request, String name){
	return Boolean.parseBoolean(request.getParameter(name));
}
/**
 * 通过名字从 request parameters 中获取值，并返回 Integer
 * 如果值为空，默认返回 null
 * @param request
 * @param name
 * @return
 */
public static Integer findParamInteger(ServletRequest request, String name) {
	String paramValue = findParamStr(request, name);
	if( StringUtils.isBlank(paramValue)){
		return null;
	}
	try{
		return Integer.parseInt(paramValue);
	} catch (Exception e) {
		return null;
	}
}

	/**
	 * 获取服务器地址
	 * @param request 客户端请求
	 * @return  String
	 */
	public static String getServerPath(HttpServletRequest request){
		System.out.println("============="+request.getSession().getServletContext().getRealPath("/"));
		return request.getSession().getServletContext().getRealPath("/").replace("ROOT" + File.separator, "");
	}
}